/*
 * File:   caleidoscopio.h
 * Author: Jorge
 *
 * Created on 17 de febrero de 2008, 21:59
 */

#ifndef _CALEIDOSCOPIO_H
#define	_CALEIDOSCOPIO_H

#include <QWidget>
#include "referencia.h"
#include "dibujo.h"
#include "pintorcaleidoscopico.h"
#include "creadorceldas.h"
#include "visitadorceldas.h"

//#ifdef	__cplusplus
//extern "C" {
//#endif

class Caleidoscopio : public QWidget {
    Q_OBJECT
public:
    Caleidoscopio(QWidget *padre = 0);

protected:
    void paintEvent(QPaintEvent *evento);
    void timerEvent(QTimerEvent *evento);
    void showEvent(QShowEvent *evento);

    void pintarMaya(QPainter &painter);

    void pintarTest(QPainter &painter);

    void calcularPosiciones();

private:
    int actualizacionTimerId;

    QPainter painter;

    vector<Referencia<Dibujo> > _dibujos;

    Referencia<PintorCaleidoscopico> _pintor;

    //Referencia<CreadorCeldas> _creadorCeldas;

    Referencia<VisitadorCeldas> _motor;

    real _angulo;
};

//#ifdef	__cplusplus
//}
//#endif

#endif	/* _CALEIDOSCOPIO_H */

